home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 19 / Mac Magazin and MacEasy Magazine CD - Issue 19.iso / Wissenschaft & Technik / WASTE 1.2a5 Distribution / WASTE 1.2a5 / WELongCoords.c < prev    next >
Text File  |  1996-01-13  |  2KB  |  73 lines

  1. /*
  2.  *    WELongCoords.c
  3.  *
  4.  *    WASTE PROJECT
  5.  *  Long Coordinates
  6.  *
  7.  *  Copyright (c) 1993-1996 Marco Piovanelli
  8.  *    All Rights Reserved
  9.  *
  10.  *  C port by Dan Crevier
  11.  *
  12.  */
  13.  
  14.  
  15. #include "WASTEIntf.h"
  16.  
  17. enum {
  18.     kQDMin = -32767L,
  19.     kQDMax = +32767L
  20. };
  21.  
  22. pascal long _WEPinInRange(long value, long rangeStart, long rangeEnd)
  23. {
  24.     return ((value > rangeEnd) ? rangeEnd : ((value < rangeStart) ? rangeStart : value));
  25. }
  26.  
  27. pascal void WELongPointToPoint(const LongPt *lp, Point *p)
  28. {
  29.     p->v = _WEPinInRange(lp->v, kQDMin, kQDMax);
  30.     p->h = _WEPinInRange(lp->h, kQDMin, kQDMax);
  31. }
  32.  
  33. pascal void WEPointToLongPoint(Point p, LongPt *lp)
  34. {
  35.     lp->v = p.v;
  36.     lp->h = p.h;
  37. }
  38.  
  39. pascal void WESetLongRect(LongRect *lr, long left, long top, long right, long bottom)
  40. {
  41.     lr->top    = top;
  42.     lr->left   = left;
  43.     lr->bottom = bottom;
  44.     lr->right  = right;
  45. }
  46.  
  47. pascal void WELongRectToRect(const LongRect *lr, Rect *r)
  48. {
  49.     WELongPointToPoint((const LongPt *) lr, (Point *) r);
  50.     WELongPointToPoint((const LongPt *) lr + 1, (Point *) r + 1);
  51. }
  52.  
  53. pascal void WERectToLongRect(const Rect *r, LongRect *lr)
  54. {
  55.     lr->top    = r->top;
  56.     lr->left   = r->left;
  57.     lr->bottom = r->bottom;
  58.     lr->right  = r->right;
  59. }
  60.  
  61. pascal void WEOffsetLongRect(LongRect *lr, long hOffset, long vOffset)
  62. {
  63.     lr->top    += vOffset;
  64.     lr->left   += hOffset;
  65.     lr->bottom += vOffset;
  66.     lr->right  += hOffset;
  67. }
  68.  
  69. pascal Boolean WELongPointInLongRect(const LongPt *lp, const LongRect *lr)
  70. {
  71.     return ((lp->v >= lr->top) && (lp->h >= lr->left) && (lp->v < lr->bottom) && (lp->h < lr->right));
  72. }
  73.